[IA64] kexec: Header changes in preparation for EFI RID
authorIsaku Yamahata <yamahata@valinux.co.jp>
Tue, 22 Jul 2008 03:15:02 +0000 (12:15 +0900)
committerIsaku Yamahata <yamahata@valinux.co.jp>
Tue, 22 Jul 2008 03:15:02 +0000 (12:15 +0900)
commit592686b770b78ff85d1c1d4f8c23cc72ee1d1dac
tree96e31a72c8c4521f48e77769ff50b413ac73017f
parent593813c9374b896613374243a13bd3dffb2d5488
[IA64] kexec: Header changes in preparation for EFI RID

The EFI RID patches require pal.h to (directly or indirectly)
have access to GRANULE_SIZE which is defined in pgtable.h.
This effectively causes a header loop as pgtable.h includes
system.h and system.h includes pal.h. This patch breaks
that loop by not including pal.h in system.h if XEN is defined,
which is the only time the loop will occur.

There are two side effects of this:

1. regionreg.c makes use of some symbols declared in
   pal.h but does not include it directly. This is
   resolved by including it, which doesn't seem to
   cause any additional problems.

2. system.h makes use of ia64_pal_halt_light which is defined in pal.h.

   #define safe_halt()         ia64_pal_halt_light()

   This is probably the reason that pal.h is included in system.h.
   However this does not seem to manifest as any sort of build problem,
   presumably because either nothing in xen uses safe_halt,
   or because those that do include pal.h by some other means.

   In any case the change seems safe, though hackish.

Cc: Tristan Gingold <tgingold@free.fr>
Cc: Isaku Yamahata <yamahata@valinux.co.jp>
Cc: Alex Williamson <alex.williamson@hp.com>
Cc: Aron Griffis <aron@hp.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
xen/arch/ia64/xen/regionreg.c
xen/include/asm-ia64/linux-xen/asm/system.h